package loja.services.factory;

import loja.dao.DAOFactory;
import loja.services.CartaoCreditoCompraService;
import loja.services.CategoriaService;
import loja.services.ClienteService;
import loja.services.CompraService;
import loja.services.DespesaService;
import loja.services.EstoqueService;
import loja.services.GrupoService;
import loja.services.PedidoCompraService;
import loja.services.ProdutoService;
import loja.services.SegurancaService;
import loja.services.TransacaoService;
import loja.services.VendaService;

public abstract class ServiceFactory {

	public abstract DAOFactory getDAOFactory();

	public CompraService getCompraService() {
		return new CompraService(this, getDAOFactory());
	}

	public PedidoCompraService getPedidoCompraService() {
		return new PedidoCompraService(this, getDAOFactory());
	}

	public TransacaoService getTransacaoService() {
		return new TransacaoService(getDAOFactory());
	}

	public DespesaService getDespesaService() {
		return new DespesaService(this, getDAOFactory());
	}

	public CartaoCreditoCompraService getCartaoCreditoCompraService() {
		return new CartaoCreditoCompraService(this, getDAOFactory());
	}

	public EstoqueService getEstoqueService() {
		return new EstoqueService(this, getDAOFactory());
	}

	public ClienteService getClienteService() {
		return new ClienteService(this, getDAOFactory());
	}

	public ProdutoService getProdutoService() {
		return new ProdutoService(getDAOFactory());
	}

	public CategoriaService getCategoriaService() {
		return new CategoriaService(getDAOFactory());
	}

	public GrupoService getGrupoService() {
		return new GrupoService(getDAOFactory());
	}

	public SegurancaService getSegurancaService() {
		return new SegurancaService(getDAOFactory());
	}

	public VendaService getVendaService() {
		return new VendaService(this, getDAOFactory());
	}

}
